What is the software development life cycle?
What is the software development life cycle?
Software development life cycle or SDLC, is a process followed for a software development project. It consists of a detailed plan describing how to develop, maintain, replace or enhance specific software product.The software development life cycle defines a methodology for improving the quality of the overall software development process.
Planning and Requirement Analysis
Requirement analysis is the most important and fundamental stage in the software development life cycle. It is performed by the members of the software development team with inputs from the customer, the sales department, market surveys and industry experts if necessary.This information collected is assessed and put into a development plan in order to conduct a product feasibility study in the affordability, operational and technical areas. Planning for the quality assurance requirements and identification of the risks associated with the project is also done in the planning stage.The outcome of the technical feasibility study is to define the various technical approaches that can be followed to implement the project successfully with minimum risks to the business.
Systems analysis, requirements definition
Once the requirement analysis is done the next step is to clearly define and document the product requirements and get them approved by the customer.This is done through an SRS (Software Requirement Specification) document which consists of all the product requirements to be designed and developed during the project life cycle. The SRS document also ensures that the development team designs and develops the software product according to the customer's needs and not according what the developers think the customer wants.
Systems design
SRS is the reference for product architects to come out with the best architecture for the product to be developed. Based on the requirements specified in SRS, usually more than one design approach for the product architecture is proposed and documented in a Design Document Specification or DDS.
A design approach clearly defines all the architectural modules of the product along with its communication and data flow representation with the external and third party modules (if any). The internal design of all the modules of the proposed architecture should be clearly defined with the minutest of the details in DDS.
Development
In this stage of SDLC the actual software development is stated. The software product is coded according to the specifications specified in the SRS and DDS documents.
The programming language is normally chosen that will best suite the requirements for the software being developed. The software development can have various development phases as well depending on the coding methodologies followed such as a SCRUM or AGILE approach.
Testing
This stage is usually a subset of all the stages as in the modern SDLC models, the testing activities are mostly involved in all the stages of SDLC.
However, the testing stage refers to reporting of bugs and defects, correcting the reported bugs and retesting the software product, until the product reaches the quality standards defined in the SRS.
